<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/***
	客户的联系人，从客户列表的链接过来。
	包括：
	列出所有指定客户的联系人 index($client_id)，需要输入客户ID
**/
class Contact_person extends CI_Controller {
	
	public function __construct() {
		parent::__construct();
		$this->load->library('session');
		$this->load->model('contact_person_model');
		$this->load->model('client_model');
		$this->load->helper('url');
	}
	//显示添加联系人表单
	//列出所选客户的所有联系人
	public function index($client_id = 0, $id = 0) {
		isset($_SESSION['user_name']) OR exit('请先登录！');	
		//客户名作为链接参数传递时，有可能包含特殊字符，造成错误；中文字符和空格传递后不能正常显示；
		//为此改用由$client_id查寻client_name
		//并且只有来自客户列表页面的链接有传递$client_id，由此判断数据来源并选择处理方式。
		if ($client_id <> 0) {
			$client = $this->client_model->get_by_id($client_id);
			$client_name = $client['name'];
		}
		
		//form1被设置在新建表单中
		//form2被设置在更新表单中
		//client_id和client_name都一直继承下来，因为除了第一次从客户列表页面发送过来，该方法就不会接收到client参数。
		//是否修改成功，接下来的列表会清楚表明，所以不做提示。而且那样会造成页面布置不一致。
		
		if (isset($_POST['form1'])) {
			$client_id = $_POST['client_id'];
			$client_name = $_POST['client_name'];
			$this->contact_person_model->create();
		}
		
		if (isset($_POST['form2'])) {
			$client_id = $_POST['client_id'];
			$client_name = $_POST['client_name'];
			$id = $_POST['id'];
			$this->contact_person_model->update_all($id);
			$id = 0; //更新完毕，之后还是加载添加联系信息表单
		}
		
		
		$data ['contact_persons'] = $this->contact_person_model->get_by_client($client_id);
		
		$data['title'] = '联系人表';
		$data['client_id'] = $client_id;
		$data['client_name'] = $client_name;
		
		//加载模版解析类
		$this->load->library('parser');
		$this->load->view('templates/head');
		$this->load->view('templates/menu');
		//添加联系人表单
		if ($id == 0) {
			$this->parser->parse('contact_person/form_create', $data);
		}
		//修改联系人表单
		if ($id <> 0) {
			$data['id'] = $id; //放到表单，再传回用来定位更新那条记录。
			
			//根据id查寻联系人信息
			$person = $this->contact_person_model->get_by_id($id);
			
			//把所有需要的信息转到$data数组
			
			$data['name'] = $person['name'];
			$data['position'] = $person['position'];
			$data['mobile'] = $person['mobile'];
			$data['tel'] = $person['tel'];
			$data['email'] = $person['email'];
			$data['tax'] = $person['tax'];
			
			$this->parser->parse('contact_person/form_edit', $data);
		}
		//所选客户联系人列表
		$this->parser->parse('contact_person/list', $data);
		$this->load->view('templates/foot');
	}
	
	//联系人删除
	//点击列表中的删除按钮时GET过来一个id
	//删除后还要显示新增表单和列表，不做提示，可以观察列表内容判断是否删除成功。
	public function del($client_id, $id = 0) {
		isset($_SESSION['user_name']) OR exit('请先登录！');	
		//调用模块去删除这个记录
		$this->contact_person_model->del_by_id($id);
		
		$data ['contact_persons'] = $this->contact_person_model->get_by_client($client_id);
		$client = $this->client_model->get_by_id($client_id);
		$client_name = $client['name'];
		
		$data['title'] = '联系人表';
		$data['client_id'] = $client_id;
		$data['client_name'] = $client_name;
		
		//加载模版解析类
		$this->load->library('parser');
		$this->load->view('templates/head');
		$this->load->view('templates/menu');
		$this->parser->parse('contact_person/form_create', $data);
		$this->parser->parse('contact_person/list', $data);
		$this->load->view('templates/foot');
		
	}
}